**Aufgabenblatt 10A – UML / OOP**

*10A.1 *

Überlege 6 sinnvolle Klassen zum Thema “Buchladen” und erstelle das
UML-Diagramm

*10A.2* Gegeben sind die folgenden Klassen

![](./media/media/image1.png){width="6.191666666666666in"
height="4.3644017935258095in"}

-   Setze zwischen den gegebenen Klassen sinnvolle
    Assoziationen/Klassenvererbungen

-   Implementiere das vorliegende UML-Diagramm (!Modifier). Achte auf
    zusätzliche Attribute die sich durch assoziative Beziehungen ergeben
    können! Diese Attribute müssen ebenfalls „private“ sein!

-   Lege in deinem Hauptprogramm ein Kaufhaus mit 2 Abteilungen an. Jede
    Abteilung hat 30 Produkte (je 3 unterschiedliche) und 3 Mitarbeiter.
    Erweitere wo notwendig die Konstruktoren um die gewünschte
    „Grundaustattung“ gleich direkt beim Anlegen der Objekte zu
    übergeben.

-   Implementiere die Methode „verkauf“ in der Klasse „Kaufhaus“. Diese
    ruft von einer zufällig gewählten Abteilung die Methode „verkauf“
    auf.

-   Implementiere die Methode „verkauf“ in der Klasse „Abteilung“:

    -   Das Produkt wird zufällig ausgewählt (muss natürlich vorhanden
        sein)

    -   Der Mitarbeiter wird zufällig ausgewählt

    -   Der Umsatz des Mitarbeiters wird um den Preis des Produkts
        erhöht.

    -   Das Produkt wird aus der Abteilung „gelöscht“.

-   Implementiere die Methode „getUmsatz“ für die Klasse „Abteilung“.
    Dabei wird der Umsatz von jedem Mitarbeiter ausgegeben und der
    Gesamtumsatz zurückgeliefert.

-   Implementiere die Methode „getUmsatz“ in der Klasse „Kaufhaus“.
    (setzt sich zusammen aus den Umsätzen der beiden Abteilungen)

-   Erstelle im Hauptprogramm sinnvolle Tests – dabei sind Ausgaben auf
    der Konsole empfehlenswert!


